package com.ynet.middleground.user.bean;

import javax.validation.constraints.NotBlank;

import com.ynet.core.common.BaseReqObj;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author liulx
 * @description 创建E签宝企业账户请求对象
 * @date 2019-11-06 23:16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "创建E签宝企业账户请求对象", description = "创建E签宝企业账户请求对象")
public class CreateEsignOrganizeReq extends BaseReqObj {

    private static final long serialVersionUID = -7415093706891618459L;

    @ApiModelProperty(value = "用户ID", notes = "用户ID", dataType = "Integer", required = false)
    private Integer userId;

    @ApiModelProperty(value = "企业名称", notes = "企业名称", dataType = "String", required = true)
    @NotBlank(message = "企业名称不能为空")
    private String name;

    @ApiModelProperty(value = "邮箱", notes = "邮箱", dataType = "String")
    private String email;

    @ApiModelProperty(value = "手机号,只有山港易付渠道可上传", notes = "手机号用于接收签署验证码,只有山港易付渠道可上传", dataType = "String")
    private String mobile;

    @ApiModelProperty(value = "单位类型\n0: 普通企业，1: 社会团体，2: 事业单位，3: 民办非企业单位，4: 党政及国家机构", notes = "单位类型", dataType = "int")
    private int organType;

    @ApiModelProperty(value = "注册类型\n0:缺省注册无需法人或代理人信息, 1: 代理人注册,2: 法人注册, 默认为0", notes = "注册类型", dataType = "int")
    private int userType = 0;

    @ApiModelProperty(value = "企业证件号码，如组织机构代码号、社会信用代码号或工商注册号", notes = "企业证件号码", dataType = "String", required = true)
    @NotBlank(message = "企业证件号码不能为空")
    private String organCode;

    @ApiModelProperty(value = "法定代表人姓名，注册类型为2时必填", notes = "法定代表人姓名", dataType = "String")
    private String legalName;

    @ApiModelProperty(value = "法定代表人身份证号/护照号，当注册类型为2时必填", notes = "注册类型为2时必填", dataType = "String")
    private String legalIdNo;

    @ApiModelProperty(value = "法定代表人归属地\n0: 大陆，1: 香港，2: 澳门，3: 台湾，4: 外籍，默认0", notes = "法定代表人归属地", dataType = "int")
    private int legalArea = 0;

    @ApiModelProperty(value = "代理人姓名", notes = "当注册类型为1时必填, 即为代理人注册是必填", dataType = "String")
    private String agentName;

    @ApiModelProperty(value = "代理人身份证号", notes = "当注册类型为1时必填, 即为代理人注册是必填", dataType = "String")
    private String agentIdNo;

    @ApiModelProperty(value = "公司地址", notes = "公司地址", dataType = "String")
    private String address;

    @ApiModelProperty(value = "经营范围", notes = "经营范围", dataType = "String")
    private String scope;

    @ApiModelProperty(value = "企业注册类型\nNORMAL: 组织机构代码号,\n" + "MERGE: 多证合一，传递社会信用代码号,\n" + "REGCODE: 企业工商注册码,\n"
        + "ORGAN_OTHER: 其它, 默认为 NORMAL", notes = "企业注册类型", dataType = "String")
    private String regType;

}
